﻿
/*
 * Javasript based on Functions(JBF) 1.03
 * 
 * Copyright(c) 2010, Fooxee (JA86.CN)
 *
 * JBF is licensed under the terms of the Open Source GPL 3.0(http://www.gnu.org/licenses/gpl.html) license. 
 * 
 * JBF's blog: http://www.cnblogs.com/JBF/
 * 
 * Created by Fooxee. at 2010.03.08  mailTo:hjccjun@163.com
 */

//日期操作相关
JBF.Date=JBF.date={
	
	now : +new Date(),
	//添加天数
	addDays:function(rDate,d)
	{
		rDate.setDate(rDate.getDate() + d);
		return rDate;
	},
	//添加周
	addWeeks:function(rDate,w)
	{
		rDate.addDays(w * 7);
		return rDate;
	},
	//添加月
	addMonths:function(rDate,m)
	{
		var d = rDate.getDate();
		rDate.setMonth(rDate.getMonth() + m);
	
		if (rDate.getDate() < d)
		{
			rDate.setDate(0);
		}
		return rDate;
	},
	//添加年
	addYears:function(rDate,y)
	{
		var m = rDate.getMonth();
		rDate.setFullYear(rDate.getFullYear() + y);
	
		if (m < rDate.getMonth()) 
		 {
			rDate.setDate(0);
		 }
		 
		 return rDate;
	},
	//取得指定日期的周一的日期
	getFirstDateOfWeek:function(rDate,offset)
	{
		offset=(offset?offset:0)*7;
		rDate.setDate(rDate.getDate()+1+offset-rDate.getDay());
		return rDate;
	},
	//取得指定日期的周日的日期
	getLastDateOfWeek:function(rDate,offset)
	{
		offset=(offset?offset:0)*7;
		rDate.setDate(rDate.getDate()+7+offset-rDate.getDay());
		return rDate;
	},
	//取得指定月的第一天
	getFirstDateOfMonth:function(year,month,offset)
	{
		offset=offset?offset:0;
		var nd=JBF.Date.addMonths(new Date(year+"/"+month+"/1"),offset);
		var ny=nd.getFullYear();
		var nm=nd.getMonth()+1;
	
		return new Date(ny+"/"+nm+"/1");
	},
	//取得指定月的最后一天
	getLastDateOfMonth:function(year,month,offset)
	{
		offset=offset?offset:0;
		var nd=JBF.Date.addMonths(new Date(year+"/"+month+"/1"),offset);
		var ny=nd.getFullYear();
		var nm=nd.getMonth()+1;
		var nd=new Date(ny,nm,1);
		var ld=(new Date(nd.getTime()-1000*60*60*24)).getDate();
		return new Date(ny+"/"+nm+"/"+ld);
	},
	//取得指定月的季度的第一天
	getFirstDateOfQuarter:function(year,month,offset)
	{
		
		offset=offset?offset:0;
		offset=offset*3;
	
		var nd=JBF.Date.getFirstDateOfMonth(year,month,offset);
		var ny=nd.getFullYear();
		var nm=nd.getMonth()+1;
	
		if(nm>=1 && nm <=3)
		{
			return JBF.Date.getFirstDateOfMonth(ny,1,0);
		}
		else if(nm>=4 && nm <=6)
		{
			return JBF.Date.getFirstDateOfMonth(ny,4,0);
		}
		else if(nm>=7 && nm <=9)
		{
			return JBF.Date.getFirstDateOfMonth(ny,7,0);
		}
		else if(nm>=10 && nm <=12)
		{
			return JBF.Date.getFirstDateOfMonth(ny,10,0);
		}
		
	},
	//取得指定月的季度的最后一天
	getLastDateOfQuarter:function(year,month,offset)
	{
		offset=offset?offset:0;
		offset=offset*3;
	
		var nd=JBF.Date.getFirstDateOfMonth(year,month,offset);
		var ny=nd.getFullYear();
		var nm=nd.getMonth()+1;
		
		if(nm>=1 && nm <=3)
		{
			return JBF.Date.getLastDateOfMonth(ny,3,0);
		}
		else if(nm>=4 && nm <=6)
		{
			return JBF.Date.getLastDateOfMonth(ny,6,0);
		}
		else if(nm>=7 && nm <=9)
		{
			return JBF.Date.getLastDateOfMonth(ny,9,0);
		}
		else if(nm>=10 && nm <=12)
		{
			return JBF.Date.getLastDateOfMonth(ny,12,0);
		}
	}

};